﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BLL
{
    /// <summary>
    /// 任务表
    /// </summary>
    public class BLL_task
    { 
        /// <summary>
        /// 增
        /// </summary>
        /// <param name="tk"></param>
        /// <returns></returns>
        public bool insert(task tk)
        {
            if (tk.task_refrences_user_email != null)
            {
                GodHelperDBDataContext da = new GodHelperDBDataContext();
                da.task.InsertOnSubmit(tk);
                da.SubmitChanges();
                return true;
            }
            return false;
        }

        /// <summary>
        /// 删
        /// </summary>
        /// <param name="tk"></param>
        /// <returns></returns>
        public bool delete(task tk)
        {
            GodHelperDBDataContext da = new GodHelperDBDataContext();
            var p = da.task.Where(item => item.task_id == tk.task_id);
            if (p.Any())
            {
                da.task.DeleteOnSubmit(p.ToList()[0]);
                da.SubmitChanges();
                return true;
            }
            return false;
        }

        /// <summary>
        /// 改
        /// </summary>
        /// <param name="ui"></param>
        /// <returns></returns>
        public bool update(task tk)
        {
            GodHelperDBDataContext da = new GodHelperDBDataContext();
            var p = da.task.Where(item => item.task_id == tk.task_id);
            if (p.Any())
            {
                var var_task = p.ToList()[0];
                var_task.task_decript = tk.task_decript;
                var_task.task_time = tk.task_time;
                var_task.task_state = tk.task_state;
                var_task.task_contact = tk.task_contact;
                var_task.task_refrences_user_email = tk.task_refrences_user_email;
                da.SubmitChanges();
                return true;
            }
            return false;
        }

        /// <summary>
        /// 查
        /// </summary>
        /// <param name="ui"></param>
        /// <param name="refrenceskey">根据那个键值查询</param>
        /// <returns></returns>
        public List<task> search(task tk, string refrenceskey)
        {
            GodHelperDBDataContext da = new GodHelperDBDataContext();
            switch (refrenceskey)
            {
                case "task_id":
                    if (tk.task_id != null)
                    {
                        var p = da.task.Where(item => item.task_id == tk.task_id);
                        if (p.Any())
                        {
                            return p.ToList();
                        }
                    }
                    break;
                case "task_decript":
                    if (tk.task_refrences_user_email != null)
                    {
                        var p = da.task.Where(item => item.task_refrences_user_email == tk.task_refrences_user_email && item.task_decript == tk.task_decript);
                        if (p.Any())
                        {
                            return p.ToList();
                        }
                    }
                    break;
                case "task_time":
                    if (tk.task_refrences_user_email != null)
                    {
                        var p = da.task.Where(item => item.task_refrences_user_email == tk.task_refrences_user_email && item.task_time == tk.task_time);
                        if (p.Any())
                        {
                            return p.ToList();
                        }
                    }
                    break;
                case "task_state":
                    if (tk.task_refrences_user_email != null)
                    {
                        var p = da.task.Where(item => item.task_refrences_user_email == tk.task_refrences_user_email && item.task_state == tk.task_state);
                        if (p.Any())
                        {
                            return p.ToList();
                        }
                    }
                    break;
                case "task_contact":
                    if (tk.task_refrences_user_email != null)
                    {
                        var p = da.task.Where(item => item.task_refrences_user_email == tk.task_refrences_user_email && item.task_contact == tk.task_contact);
                        if (p.Any())
                        {
                            return p.ToList();
                        }
                    }
                    break;
                case "task_refrences_user_email":
                    if (tk.task_refrences_user_email != null)
                    {
                        var p = da.task.Where(item => item.task_refrences_user_email == tk.task_refrences_user_email);
                        if (p.Any())
                        {
                            return p.ToList();
                        }
                    }
                    break;
                case "all":
                    if (tk.task_refrences_user_email != null)
                    {
                        var p = da.task.Where(item => item.task_refrences_user_email == tk.task_refrences_user_email &&
                            item.task_decript == tk.task_decript &&
                            item.task_time == tk.task_time &&
                            item.task_type == tk.task_type &&
                            item.task_state == tk.task_state &&
                            item.task_contact == tk.task_contact);
                        if (p.Any())
                        {
                            return p.ToList();
                        }
                    }
                    break;
            }
            return null;
        }
    }
}
